package com.hospital.dao;

import com.hospital.model.DoctorView;
import java.sql.SQLException;
import java.util.List;

/**
 * 医生视图数据访问接口
 * 定义了对医生视图信息进行数据库操作的方法，包含医生基本信息和所属科室信息
 */
public interface DoctorViewDao {
    /**
     * 根据医生ID查询医生视图信息
     * @param doctorId 医生ID
     * @return 医生视图信息对象，如果不存在返回null
     * @throws SQLException 数据库操作异常
     */
    DoctorView findByDoctorId(String doctorId) throws SQLException;
    
    /**
     * 获取所有医生视图信息
     * @return 医生视图信息列表
     * @throws SQLException 数据库操作异常
     */
    List<DoctorView> findAll() throws SQLException;
    
    /**
     * 根据科室ID查询医生视图信息
     * @param deptId 科室ID
     * @return 该科室的医生视图信息列表
     * @throws SQLException 数据库操作异常
     */
    List<DoctorView> findByDeptId(int deptId) throws SQLException;
    
    /**
     * 根据医生姓名模糊查询
     * @param doctorName 医生姓名（支持模糊查询）
     * @return 匹配的医生视图信息列表
     * @throws SQLException 数据库操作异常
     */
    List<DoctorView> findByDoctorName(String doctorName) throws SQLException;
    
    /**
     * 验证医生登录信息
     * @param doctorId 医生ID
     * @param password 密码
     * @return 医生视图信息对象，如果验证失败返回null
     * @throws SQLException 数据库操作异常
     */
    DoctorView validateLogin(String doctorId, String password) throws SQLException;
} 